
#ifndef __VIRTUAL_MACHINE_H__
#define __VIRTUAL_MACHINE_H__

	#include "..\\PlugBase.h"

	void setCaller(const CALLER caller);


	enum COUNTRIES_HASH_INFO//countries
	{
		EUROPE_HASH = 1358543058,//EUROPE <- CAPITALS
		FRANCE_HASH = 1666753608,//FRANCE <- CAPITALS
		BRAZIL_HASH = 2026592539,//BRAZIL <- CAPITALS
		HONGKONG_HASH = 1945383828,//HONGKONG <- CAPITALS
		ASIA_HASH = 1082596907,//ASIA <- CAPITALS
		JAPAN_HASH = 1622142574,//JAPAN <- CAPITALS
		USA_HASH = 446455507//USA <- CAPITALS
	};

	enum IODEVICE_HASH_INFO//I/O devices ALL MUST BE IN CAPITAL as in comments
	{
		/*JOYPAD*/
		 JOYPAD_HASH = 1295312862,
		/*JOYPAD_6BTN*/
		 JOYPAD_6BTN_HASH = 166724284,
		/*KEYBOARD*/
		 KEYBOARD_HASH = 3313213018,
		/*PRINTER*/
		 PRINTER_HASH = 1022766116,
		/*CONTROL_BALL*/
		 CONTROL_BALL_HASH = 927609377,
		/*FLOPPY_DISK*/
		 FLOPPY_DISK_HASH = 3991399483,
		/*ACTIVATOR*/
		 ACTIVATOR_HASH = 2460732672,
		/*TEAMPLAY*/
		 TEAMPLAY_HASH = 3983807908,
		/*JOYSTIC_MS*/
		 JOYSTIC_MS_HASH = 2570347464,
		/*RS232C*/
		 RS232C_HASH = 3698386494,
		/*TABLET*/
		 TABLET_HASH = 2798681289,
		/*PADDLE_CONTROLLER*/
		 PADDLE_CONTROLLER_HASH = 415604802,
		/*CDROM*/
		 CDROM_HASH = 1630607958,
		/*MEGA_MOUSE*/
		 MEGA_MOUSE_HASH = 4194392429
	};

	
	bool runCode(std::vector<COpCode>& opCodes,NeoResultBlock *dst);
#endif
